package homework.question3.task;

import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.temporal.Temporal;
import java.util.Calendar;
import java.util.Date;
import java.util.SimpleTimeZone;
import java.util.TimerTask;

public class TimeTask extends TimerTask {
/*
    // 定义秒杀开始时间
    private long startTime ;

    // 构造方法，对秒杀开始时间进行初始化
    public TimeTask() {

        // 补全代码


    }

    @Override
    public void run() {                                 // 每一秒执行一次该方法
        //补全代码



    }*/
    // 定义秒杀开始时间
    private long startTime;

    // 构造方法，对秒杀开始时间进行初始化
    public TimeTask() {
        // 设置秒杀开始时间为明天的06:00:00
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_YEAR, 1); // 明天
        calendar.set(Calendar.HOUR_OF_DAY, 6); // 6点
        calendar.set(Calendar.MINUTE, 0);      // 0分
        calendar.set(Calendar.SECOND, 0);      // 0秒
        calendar.set(Calendar.MILLISECOND, 0); // 0毫秒

        this.startTime = calendar.getTimeInMillis();
    }

    @Override
    public void run() {
        // 获取当前系统时间
        long currentTime = System.currentTimeMillis();

        // 计算剩余时间（毫秒）
        long remainingTime = startTime - currentTime;

        // 如果秒杀已经开始
        if (remainingTime <= 0) {
            System.out.println("秒杀已开始！");
            this.cancel(); // 停止定时任务
            return;
        }

        // 将毫秒转换为时、分、秒
        long seconds = remainingTime / 1000;
        long hours = seconds / 3600;
        seconds = seconds % 3600;
        long minutes = seconds / 60;
        seconds = seconds % 60;

        // 格式化输出
        String countdown = String.format("%02d小时%02d分钟%02d秒", hours, minutes, seconds);
        System.out.println("距离秒杀开始还有: " + countdown);
    }

}
